package com.yanfan.zutai.controller.xunraostrage;

import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.yanfan.mqttclient.PubMqttClient;
import com.yanfan.zutai.domain.BDeviceRealData;

import java.util.HashMap;
import java.util.Map;

public class ConsumerXunrao1 implements ConsumerXunrao {
    String xunraoTopic = "/cloud/message/B1DA71366C4C424DBE3B8929471D6B6E/cmd/set";

    private static Map<String, String> getMap() {
        Map<String, String> map = new HashMap();
        map.put("GYBY", "GY_BY");
        map.put("GLDB1", "GL_DB1");
        map.put("F14DB", "F14_DB");

        map.put("XRP2DB", "XRP2_DB");
        map.put("XRP1DB", "XRP1_DB");
        map.put("LQT4DB", "LQT_4_DB");
        map.put("LQT3DB", "LQT_3_DB");
        map.put("LQT2DB", "LQT_2_DB");
        map.put("LQT1DB", "LQT_1_DB");
        map.put("LQTZDB", "LQTZ_DB");
        map.put("LQP2DB", "LQP2_DB");
        map.put("LQP1DB", "LQP1_DB");
        map.put("LJ2DB", "LJ2_DB");
        map.put("LJ1DB", "LJ1_DB");
        map.put("LJPUMPZDB", "LJ_PUMP_ZDB");
        map.put("GLDB2", "GL_DB2");
        map.put("LDP2DB", "LDP2_DB");
        map.put("LDP1DB", "LDP1_DB");

        map.put("LQT11DB", "LQT1_1_DB");
        map.put("LQT12DB", "LQT1_2_DB");
        map.put("LQT21DB", "LQT2_1_DB");
        map.put("LQT22DB", "LQT2_2_DB");
        map.put("PUMPZDB", "PUMP_ZDB");

        map.put("ZJ2", "ZJ2");
        map.put("ZJ1", "ZJ1");
        map.put("Device1", "Device_1");
        map.put("GL", "GL");

        map.put("N4", "N4");

        map.put("KYJ1", "KYJ1");
        map.put("KYJ2", "KYJ2");
        map.put("GL12", "GL12");
        map.put("GL3", "GL3");
        map.put("AMK", "AMK");
        map.put("KT1", "KT1");
        map.put("KT2", "KT2");
        map.put("KT3", "KT3");
        map.put("KT4", "KT4");
        map.put("KT5", "KT5");
        map.put("KT6", "KT6");
        map.put("KT7", "KT7");
        map.put("MCU2", "MCU2");
        map.put("MCU3", "MCU3");
        map.put("KT9", "KT9");
        map.put("CH1", "CH1");
        map.put("CH2", "CH2");
        map.put("AMK1", "AMK1");
        map.put("LRY", "LRY");
        map.put("S7", "S7");
        map.put("D1", "D1");
        map.put("D2", "D2");
        map.put("D3", "D3");
        map.put("D4", "D4");
        map.put("D5", "D5");
        map.put("D6", "D6");
        map.put("D7", "D7");
        map.put("D8", "D8");
        map.put("D9", "D9");
        map.put("D10", "D10");
        map.put("D11", "D11");
        map.put("D12", "D12");
        map.put("D13", "D13");
        map.put("D14", "D14");
        map.put("D15", "D15");
        map.put("D16", "D16");
        map.put("D17", "D17");
        map.put("D18", "D18");
        map.put("D19", "D19");
        map.put("D20", "D20");
        map.put("D21", "D21");
        map.put("D22", "D22");
        map.put("D23", "D23");
        map.put("D24", "D24");
        map.put("D25", "D25");
        map.put("D26", "D26");
        map.put("D27", "D27");
        map.put("D28", "D28");
        map.put("D29", "D29");
        map.put("D30", "D30");
        map.put("D31", "D31");
        map.put("D32", "D32");
        map.put("D33", "D33");
        map.put("D34", "D34");
        map.put("D35", "D35");
        map.put("D36", "D36");
        map.put("D37", "D37");
        map.put("D38", "D38");
        map.put("D39", "D39");
        map.put("D40", "D40");
        map.put("D41", "D41");
        map.put("D42", "D42");
        map.put("D43", "D43");
        map.put("D44", "D44");
        map.put("D45", "D45");
        map.put("D46", "D46");
        map.put("D47", "D47");
        map.put("D48", "D48");
        map.put("D49", "D49");
        map.put("D50", "D50");
        map.put("D51", "D51");
        map.put("D52", "D52");
        map.put("D53", "D53");
        map.put("D54", "D54");
        map.put("D55", "D55");
        map.put("D56", "D56");
        map.put("D57", "D57");
        map.put("D58", "D58");
        map.put("D59", "D59");
        map.put("D60", "D60");
        map.put("D61", "D61");
        map.put("D62", "D62");
        map.put("D63", "D63");
        map.put("D64", "D64");
        map.put("D65", "D65");
        map.put("D66", "D66");
        map.put("D67", "D67");
        map.put("D68", "D68");
        map.put("D69", "D69");
        map.put("D70", "D70");
        map.put("D71", "D71");
        map.put("D72", "D72");
        map.put("D73", "D73");
        map.put("D74", "D74");
        map.put("D75", "D75");
        map.put("D76", "D76");
        map.put("D77", "D77");
        map.put("D78", "D78");
        map.put("D79", "D79");
        map.put("D80", "D80");
        map.put("D81", "D81");
        map.put("DL", "DL");
        map.put("LK", "LK");
        map.put("O3", "O3");

        return map;
    }

    @Override
    public void consumer(PubMqttClient mqttClient, BDeviceRealData bDeviceRealData) {

        // 讯绕topic
        Map xunraoMap = new HashMap();
        xunraoMap.put("ver", "2.0.0");
        xunraoMap.put("pKey", "message");
        xunraoMap.put("sn", "B1DA71366C4C424DBE3B8929471D6B6E");
        xunraoMap.put("seq", "1012800");
        xunraoMap.put("type", "cmd/set");
        xunraoMap.put("ts", DateUtil.currentSeconds());
        Map xunraoDataMap = new HashMap();
        xunraoDataMap.put("sysid", "1169925172722737152");
        xunraoDataMap.put("dev", getMap().get(bDeviceRealData.getDeviceImei()));
        xunraoDataMap.put("m", bDeviceRealData.getParamField());
        xunraoDataMap.put("v", bDeviceRealData.getParamValue());
        xunraoMap.put("data", xunraoDataMap);
        mqttClient.publish(1, false, xunraoTopic, JSONUtil.toJsonStr(xunraoMap));
    }
}
